www.gusucode.com > 基于Matlab的MIMO通信系统仿真 含报告;司中威;了解移动通信 > 基于Matlab的MIMO通信系统仿真 含报告;司中威;了解移动通信关键技术,了解数字通信系统仿真流程,实现基本的信道编译码、调制解调等通信模块。(好评如潮,课设拿满) 学习并实现MIMO空时处理技术 学习性能分析的思路和方法/mimo/matlab for mimo 2x2/antenna_selection.m
function [A, B]= antenna_selection(H,Delta_S_Set,type,SNR) % function [A, B]= antenna_selction(H,Delta_S_Set,type,SNR) % Antenna Subset Selection, choose A and B by type = MBER,MMI,LAZY % A,B Antenna selected % H channel matrix estimation % Delta_S_Set exhaustive searching set of Delta_S % type different criteria MBER=Minimum BER, MMI=Maximum Mutual Info % SNR Signal to Noise Ritio in dB % by Jinfeng Du % 05-04-22 MBER = 1; MMI = 2; LAZY = 3; MNP = 4; %Minimum Noise Power MMNP = 5; LAZY2 = 6; if nargin<3 type = MBER; end if nargin<4 SNR = 20;%in dB end signal_noise = 10^(SNR/10.0); if type == MBER % start of Minimum BER criteria set_len = length(Delta_S_Set); max_d = 0; for Ai = 1:2 for Bi = 3:4 d = norm(H([Ai Bi],:)*Delta_S_Set(:,1)); % Initial value of d for len = 2:set_len new_d = norm(H([Ai Bi],:)*Delta_S_Set(:,len)); if new_d < d d = new_d; end end %end of minimizing d if d > max_d max_d = d; A = Ai; B = Bi; end % end of finding the maximum minimum d end %end of Bi end %end of Ai % end of Minimum BER criteria elseif type == MMI % start of Maximum Mutual Information criteria max_r = 0; for Ai = 1:2 for Bi = 3:4 new_r = det(eye(2) + signal_noise*H([Ai Bi],:)*H([Ai Bi],:)'); if new_r > max_r max_r = new_r; A = Ai; B = Bi; end % end of finding the max_r end %end of Bi end %end of Ai % end of Maximum Mutual Information criteria elseif type == MNP % start of Minimum Noise Power criteria min_r = 10^8; for Ai = 1:2 for Bi = 3:4 new_r = trace(inv(H([Ai Bi],:))*inv(H([Ai Bi],:))'); if new_r < min_r min_r = new_r; A = Ai; B = Bi; end % end of finding the min_r end %end of Bi end %end of Ai % end of Minimum Noise Power criteria elseif type == MMNP % start of Minimum Noise Power criteria max_r = 0; for Ai = 1:2 for Bi = 3:4 R = inv(H([Ai Bi],:))*inv(H([Ai Bi],:))'; min_r = 1/R(1,1); if R(1,1) < R(2,2) min_r = 1/R(2,2); end if max_r < min_r max_r = min_r; A = Ai; B = Bi; end % end of finding the min_r end %end of Bi end %end of Ai % end of Minimum Noise Power criteria elseif type == LAZY % start of Lazy selection A = 1; B = 3; % end of LAZY selection elseif type == LAZY2 % start of Lazy selection A = 2; B = 4; % end of LAZY selection end% end of selection